package com.example.activemq;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

import net.sf.json.JSONObject;

/**
 * 1.一般来说publisher发布消息到某一个topic时，
 * 只有正在监听该topic地址的sub能够接收到消息；
 * 如果没有sub在监听，该topic就丢失了。
 * 
 * 2.Sender发送消息到目标Queue，receiver可以
 * 异步接收这个Queue上的消息。Queue上的消息如
 * 果暂时没有receiver来取，也不会丢失。
 * @author zhujianfeng7
 *
 */
@Component
public class Consumer2 {
	
	//写两个方法同时订阅msg.topics.demo队列，相当于两个消费者，也可以再写一个消费者类
	@JmsListener(destination = "msg.topics.demo",containerFactory = "topicListenerFactory")
	public void receiveMessge(String text){
		//将json字符串转变为json对象（net.sf.json）
		JSONObject obj = JSONObject.fromObject(text);
		String username = obj.getString("username");
		String tel = obj.getString("telphone");
		String email = obj.getString("email");
		
		System.out.println("给"+tel+"发短信");
		
		System.out.println("TOPIC1\t" + text);
		
	}
	
	@JmsListener(destination = "msg.topics.demo",containerFactory = "topicListenerFactory")
	public void receiveMessge2(String text){
		//将json字符串转变为json对象（net.sf.json）
		JSONObject obj = JSONObject.fromObject(text);
		String username = obj.getString("username");
		String tel = obj.getString("telphone");
		String email = obj.getString("email");
		
		
		System.out.println("给"+email+"发邮件");
		System.out.println("\tTOPIC2" + text);
	}
}